package com.ruoyi.statistics.service;

import java.util.List;
import java.util.Map;

/**
 * 用户数据分析Service接口
 * 
 * @author ruoyi
 * @date 2025-01-18
 */
public interface IUserAnalyseService 
{
    /**
     * 查询用户核心指标数据
     * 
     * @param params 查询参数
     * @return 核心指标数据
     */
    public Map<String, Object> selectUserMetrics(Map<String, Object> params);

    /**
     * 查询用户活跃度趋势数据
     * 
     * @param params 查询参数
     * @return 用户活跃度趋势数据
     */
    public List<Map<String, Object>> selectUserActivityTrend(Map<String, Object> params);

    /**
     * 查询用户地域分布数据
     * 
     * @param params 查询参数
     * @return 用户地域分布数据
     */
    public List<Map<String, Object>> selectUserRegionDistribution(Map<String, Object> params);

    /**
     * 查询用户转化漏斗数据
     * 
     * @param params 查询参数
     * @return 用户转化漏斗数据
     */
    public Map<String, Object> selectUserConversionFunnel(Map<String, Object> params);

    /**
     * 查询用户详情列表
     * 
     * @param params 查询参数
     * @return 用户详情列表
     */
    public List<Map<String, Object>> selectUserDetails(Map<String, Object> params);

    /**
     * 查询用户详情总数
     * 
     * @param params 查询参数
     * @return 总数
     */
    public Integer selectUserDetailsCount(Map<String, Object> params);

    /**
     * 查询用户详情数据（用于导出）
     * 
     * @param params 查询参数
     * @return 用户详情数据
     */
    public List<Map<String, Object>> selectUserDetailsForExport(Map<String, Object> params);

    /**
     * 查询商品评价核心指标
     * 
     * @param params 查询参数
     * @return 评价核心指标数据
     */
    public Map<String, Object> selectCommentStatistics(Map<String, Object> params);

    /**
     * 查询评价评分分布数据
     * 
     * @param params 查询参数
     * @return 评分分布数据
     */
    public List<Map<String, Object>> selectCommentRatingDistribution(Map<String, Object> params);

    /**
     * 查询售后处理核心指标
     * 
     * @param params 查询参数
     * @return 售后核心指标数据
     */
    public Map<String, Object> selectAfterServiceStatistics(Map<String, Object> params);

    /**
     * 查询售后问题分类数据
     * 
     * @param params 查询参数
     * @return 售后问题分类数据
     */
    public List<Map<String, Object>> selectAfterServiceCategory(Map<String, Object> params);

    /**
     * 查询评价关键词统计数据
     * 
     * @param params 查询参数
     * @return 关键词统计数据
     */
    public List<Map<String, Object>> selectCommentKeywords(Map<String, Object> params);
}